package com.example.pattern.adapter;

/**
 * 适配器模式
 * 希望使用某些现有类，但是接口与其他代码不兼容时，用适配器适配
 * 当需要重用几个现有的子类，这些子类缺少一下不能添加到超累中是，用适配器模式
 * 优点：
 *  符合单一原则
 *  符合开闭原则
 */
public class AdapterTest {

    public static void main(String[] args) {

        AdapterNumber adapterNumber = new AdapterNumber(new Number(9));
        String s = adapterNumber.strNumber();
        System.out.println(s);

    }

}
/**
 * 适配 所有输入的数字
 */
class Number{

    private int n;

    public Number(int n) {
        this.n = n;
    }

    public int getNumber(){
        return n;
    }

}
/**
 * 适配器 接口 目标是 数字转换成 中文 数字
 */
interface AdapteeNumber{

    String strNumber();

}

/**
 * 适配器，把数字 转换成 中文数字
 */
class AdapterNumber implements AdapteeNumber{

    private String[] chinese_number = new String[]{"一","二","三","四","五","六","七","八","九","零"};

    private Number number;

    public AdapterNumber(Number number) {
        this.number = number;
    }

    @Override
    public String strNumber() {
        if(number.getNumber() > 10){
            return "没有这么大滴";
        }
        return chinese_number[number.getNumber() - 1];
    }
}